// 入口文件
import Vue from 'vue'

// 导入路由的包
import VueRouter from 'vue-router'
// 安装路由
Vue.use(VueRouter)

import './css/thumb.css'

// 按需导入 mint-ui 组件
// import { Header, Swipe, SwipeItem, Button, Lazyload } from "mint-ui"
// Vue.use(Lazyload)

// // 注册对应组件
// Vue.component(Header.name, Header)
// Vue.component(Swipe.name, Swipe)
// Vue.component(SwipeItem.name, SwipeItem)
// Vue.component(Button.name, Button)
import MintUI from 'mint-ui'
Vue.use(MintUI)

// 导入 vue-resource 
import vueResource from 'vue-resource'
Vue.use(vueResource)
// 导入 vue-preview
import VuePreview from 'vue-preview'
Vue.use(VuePreview)

// 注册 vueX 
import Vuex from 'vuex'
Vue.use(Vuex)

var car = JSON.parse(localStorage.getItem('car') || '[]')
var store = new Vuex.Store({
  state: {
    // this.$store.state.XXX
    car: car, // 将购物车中商品的数据，用一个数组存储，
    num: 145
  },
  mutations: {
    // this.$store.commit('method's name'),按需传入唯一的参数
    addToCar(state, goodsInfo) {
      var flag = false
      // 点击加入购物车，把商品信息保存到 store 中的 car 中
      state.car.some(item => {
        if (item.id === goodsInfo.id) {
          item.count += parseInt(goodsInfo.count)
          flag = true
          return true
        }
      })
      if (!flag) {
        state.car.push(goodsInfo)
      }
      // 当更新 car 之后，存储到本地的 localstorage
      localStorage.setItem('car', JSON.stringify(state.car))
    },
    updateGoodsInfo(state, goodsInfo) {
      state.car.some(item => {
        if (item.id === goodsInfo.id) {
          item.count = parseInt(goodsInfo.count)
          return true
        }
      })
      localStorage.setItem('car', JSON.stringify(state.car))
    },
    removeFromCar(state, id) {
      // 根据 ID 从 store 中删除相对应的数据
      state.car.some((item, index) => {
        if (item.id === id) {
          state.car.splice(index, 1)
          return true
        }
      })
      localStorage.setItem('car', JSON.stringify(state.car))
    },
    updateSelect(state, info) {
      state.car.some(item => {
        if (item.id == info.id) {
          item.selected = info.selected
        }
      })
      localStorage.setItem('car', JSON.stringify(state.car))
    }
  },
  getters: {
    // this.$store.getter.xxx
    getAllCount(state) {
      var c = 0
      state.car.forEach(item => {
        c += item.count
      })
      return c
    },
    getGoodsCount(state) {
      var o = {}
      state.car.forEach(item => {
        o[item.id] = item.count
      })
      return o
    },
    getSelected(state) {
      var o = {}
      state.car.forEach(item => {
        o[item.id] = item.selected
      })
      return o
    },
    getCountAndAmount(state) {
      var o = {
        count: 0,
        amount: 0
      }
      state.car.forEach(item => {
        if (item.selected) {
          o.count += item.count
          // o.amount += item.price * item.count
          o.amount += item.count * 29.9
        }
      })
      return o
    }
  }
})
// 暂无可用接口配置
// 配置请求的根路径
// Vue.http.options.root = 'https://news-at.zhihu.com/api'
Vue.http.options.emulateJSON = true;


// 导入 mui 框架
import './lib/mui/css/mui.min.css'
import './lib/mui/css/icons-extra.css'

// 导入 router.js 路由模块
import router from './router.js'

// 导入 APP 组件
import app from './App.vue'

// 定义全局过滤器
Vue.filter('dateFormat', function (dataStr) {
  var dt = new Date(1479737963 * 1000)
  return dt.toLocaleString()
})
var vm = new Vue({
  el: '#app',
  render: c => c(app),
  router, // 挂载路由对象
  store
})